# 编译器设置
CXX := g++
CXXFLAGS := -Wall -Wextra -std=c++11 -g

# 目标可执行文件名
TARGET := test_program

# 源文件和头文件
SRCS := test.cpp
HDRS := UnionFindSet.h

# 默认目标：直接编译生成可执行文件
all: $(TARGET)

# 直接编译生成可执行文件，不生成中间文件
$(TARGET): $(SRCS) $(HDRS)
	@echo "直接编译生成可执行文件: $@"
	$(CXX) $(CXXFLAGS) -o $@ $(SRCS)

# 清理生成的可执行文件
clean:
	@echo "清理生成的可执行文件..."
	rm -f $(TARGET)
	@echo "清理完成!"

# 重新编译
rebuild: clean all

# 调试版本
debug: CXXFLAGS += -g -DDEBUG
debug: $(TARGET)

# 显示帮助信息
help:
	@echo "可用命令:"
	@echo "  make        - 编译生成可执行文件 $(TARGET)"
	@echo "  make debug  - 编译调试版本"
	@echo "  make clean  - 清理生成的文件"
	@echo "  make rebuild - 重新编译"
	@echo "  make help   - 显示此帮助信息"

# 伪目标声明
.PHONY: all clean rebuild debug help
